package domain;

/**
 * 域对象的定义采用符合EJB3标准的注解方式定义 建议数据库字段的命名符合数据库的习惯,即用"_"的方式分词,并且Table以T_开始,所有字母大写
 * 字段命名采用类似USER_NAME的大写分词方式 对于字符型的字段必须定义其长度，如无特殊要求，字符型定义为VARCHAR 建议定义字段是否允许为空
 * 常用的查询语句建议采用NamedQuery方式定义 建议属性的getXX()方法统一放置在前面,setXX()方法放置在末尾
 * 一般来说，域对象的主键（Identity）采用自动增长的Integer类型 并定义为id
 * (column="ID")，如果存在业务主键，则业务主键作为普通的字段定义并添加unique约束
 */
import java.sql.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 域对象定义:订单对象.
 * @author zhuweiguo
 */
@Entity
@Table(name = "T_ORDER")
public class Order {

    /**
     * 订单ID.
     */
    private Integer id;

    /**
     * 客户名称.
     */
    private String customerName;

    /**
     * 产品名称.
     */
    private String productName;

    /**
     * 总价.
     */
    private Double totalPrice;

    /**
     * 下单时间.
     */
    private Date orderDate;

    /**
     * @return id
     */
    @Id
    @Column(name = "ID")
    @GeneratedValue
    public Integer getId() {
        return this.id;
    }

    /**
     * @param pOrderId the order Id.
     */
    public void setId(Integer pOrderId) {
        this.id = pOrderId;
    }

    /**
     * @return customerName.
     */
    @Column(name = "CUSTOMER_NAME", length = 128, nullable = true, unique = false)
    public String getCustomerName() {
        return customerName;
    }

    /**
     * @param pCustomerName customerName to set.
     */
    public void setCustomerName(String pCustomerName) {
        this.customerName = pCustomerName;
    }

    /**
     * @return orderDate.
     */
    @Column(name = "CREATE_DATE", nullable = true, unique = false)
    public Date getOrderDate() {
        return orderDate;
    }

    /**
     * @param pOrderDate order date.
     */
    public void setOrderDate(Date pOrderDate) {
        this.orderDate = pOrderDate;
    }

    /**
     * @return productName.
     */
    @Column(name = "PRODUCT_NAME", length = 255, nullable = false, unique = false)
    public String getProductName() {
        return productName;
    }

    /**
     * @param pProductName the product name.
     */
    public void setProductName(String pProductName) {
        this.productName = pProductName;
    }

    /**
     * @return totalPrice.
     */
    @Column(name = "TOTAL_PRICE", nullable = false, unique = false)
    public Double getTotalPrice() {
        return this.totalPrice;
    }

    /**
     * @param pTotalPrice the total price.
     */
    public void setTotalPrice(Double pTotalPrice) {
        this.totalPrice = pTotalPrice;
    }

}
